package cn.lg.soar.core.propertie.security;

import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * @author luguoxiang
 * @date 2022/4/4
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
@ConfigurationProperties(value = "lg.security")
public class SecurityProperties {

    /**
     * 用户在线模式
     */
    private Mode mode;

    /**
     * 路径权限配置
     */
    private PathPattern pathPattern;

    /**
     * 超级管理员账号(该账号无需授权可以访问任意接口)
     */
    private Set<String> superAdministrators;

    /**
     * 禁用状态配置
     */
    private Map<Integer, String> userType = new HashMap<>(0);

    /**
     * 禁用状态配置
     */
    private Map<Integer, String> userStatus = new HashMap<>(0);

    /**
     * 账号类型映射
     */
    private Map<Integer, String> accountBindType;


    public Mode getMode() {
        return mode;
    }

    public void setMode(Mode mode) {
        this.mode = mode;
    }

    public PathPattern getPathPattern() {
        return pathPattern;
    }

    public void setPathPattern(PathPattern pathPattern) {
        this.pathPattern = pathPattern;
    }

    public Set<String> getSuperAdministrators() {
        return superAdministrators;
    }

    public void setSuperAdministrators(Set<String> superAdministrators) {
        this.superAdministrators = superAdministrators;
    }

    public Map<Integer, String> getUserStatus() {
        return userStatus;
    }

    public void setUserStatus(Map<Integer, String> userStatus) {
        this.userStatus = userStatus;
    }

    public Map<Integer, String> getUserType() {
        return userType;
    }

    public void setUserType(Map<Integer, String> userType) {
        this.userType = userType;
    }

    public Map<Integer, String> getAccountBindType() {
        return accountBindType;
    }

    public void setAccountBindType(Map<Integer, String> accountBindType) {
        this.accountBindType = accountBindType;
    }
}
